package cn.stimd.spring.beans.factory.config;

import cn.stimd.spring.beans.MutablePropertyValues;
import org.springframework.core.AttributeAccessor;

/**
 * Created by Stimd
 * 项目地址：https://gitee.com/stimd/spring-wheel
 * 公众号：Java编程探微
 */
public interface BeanDefinition extends AttributeAccessor {
    int ROLE_APPLICATION = 0;           //应用程序中的Bean
    int ROLE_INFRASTRUCTURE = 2;        //框架内部的基础Bean


    void setBeanClassName(String beanClassName);
    String getBeanClassName();
    MutablePropertyValues getPropertyValues();

    void setLazyInit(boolean lazyInit);
    boolean isLazyInit();
    void setPrimary(boolean primary);
    boolean isPrimary();
    int getRole();


    void setFactoryBeanName(String factoryBeanName);
    String getFactoryBeanName();
    void setFactoryMethodName(String factoryMethodName);
    String getFactoryMethodName();
}
